package main

import "fmt"

/*
注意：
不带缓冲的通道，进和出都会阻塞。
带缓冲的通道，进一次长度 +1，出一次长度 -1，如果长度等于缓冲长度时，再进就会阻塞。
*/
func main() {

	// 声明不带缓冲的通道
	ch1 := make(chan string)
	// 声明带10个缓冲的通道
	ch2 := make(chan string, 10)
	// 声明只读通道
	ch3 := make(<-chan string)
	// 声明只写通道
	ch4 := make(chan<- string)

	fmt.Println(ch1)
	fmt.Println(ch2)
	fmt.Println(ch3)
	fmt.Println(ch4)

	ch6 := make(chan int, 5)
	fmt.Println(ch6)

	ch6 <- 12
	tmp1 := <-ch6
	fmt.Println(tmp1)
	tmp2 := <-ch6
	if tmp2 != 0 {
		fmt.Println(tmp2)
	}
}
